package com.ljy.my_study.lintcode.LFU缓存;
/** 
* @author James
* @date 2018年9月25日 
*/
public class TestMain {
//	描述
//	LFU是一个著名的缓存算法
//	实现LFU中的set 和 get
//
//	您在真实的面试中是否遇到过这个题？  
//	样例
//	capacity = 3
//
//	set(2,2)
//	set(1,1)
//	get(2)
//	>> 2
//	get(1)
//	>> 1
//	get(2)
//	>> 2
//	set(3,3)
//	set(4,4)
//	get(3)
//	>> -1
//	get(2)
//	>> 2
//	get(1)
//	>> 1
//	get(4)
//	>> 4
	public static void main(String[] args) {
		LFUCache c=new LFUCache(3);
		c.set(1, 10);
		c.set(2, 20);
		c.set(3, 30);
		c.get(1);
		c.set(4, 40);
		c.get(4);
		c.get(3);
		c.get(2);
		c.get(1);
		c.set(5, 50);
		c.get(1);
		c.get(2);
		c.get(3);
		c.get(4);
		c.get(5);
//		c.set(2, 2);
//		c.set(1, 1);
//		c.get(2);
//		c.get(1);
//		c.get(2);
//		c.set(3, 3);
//		c.set(4, 4);
//		c.get(3);
//		c.get(2);
//		c.get(1);
//		c.get(4);
//		[10,40,30,-1,10,10,-1,-1,40,50]
//		[10,40,30,-1,10,10,-1,30,-1,50]
	}
}
